In a CDMA mobile radio system, spreading sequences are used in order to be able to distinguish between different cells and subscribers in the mobile radio network. For this purpose, each user and each logical channel is assigned a different sequence of the values −1 and 1. The signal assigned to the individual user can thus be received, separated from the other signals and reconstructed. This is referred to as Code Division Multiple Access (CDMA). Important CDMA transmission systems are the IS-95 system used in the USA and the UMTS system, which is specified in 3rd Generation Partnership Project (3GPP). The detailed description of the coding used for UMTS can be found in “3GPP: Spreading and modulation (FDD)”, 3rd Generation Partnership Project TS 25.213 V4.2.0 (2001-12).
All the spreading codes which are used can be traced back to sequences of the binary values 0 and 1. These sequences may, by way of example, be “pseudo noise sequences”, which are identified by defined autocorrelation and cross-correlation characteristics.
While a pseudo noise sequence is represented in the theoretical representation as a sequence of binary values 0 and 1, the spreading sequence which is actually used is a sequence of the values +1 and −1. The binary value 0 respectively becomes the value +1 in the actual spreading sequence.
Pseudo noise sequences are defined by an iteration rule, with the iteration being carried out in the field GF(2), that is to say in the number field with the two elements 0 and 1. The theoretical basis of pseudo noise sequences and of the defining iteration rule is the theory of irreducible primitive polynomials over the field GF(2). A description of this theory and its application in the mobile radio field can be found, by way of example, in “CDMA Systems Engineering Handbook” by J. S. Lee, L. E. Miller, Artech House, Boston/London, 1998, particularly in chapter 6 therein.
Every individual pseudo noise sequence is uniquely defined by the initialization state of the code generator, that is to say by the first values of the sequence, and by the polynomial which is used for the iteration. In this case, the polynomial and hence the iteration rule in mobile radio applications are either defined for the entire network or else only a small number of different polynomials are used overall, as is the case, by way of example, for the definition of the “scrambling codes” in UMTS systems. The initialization state (i.e. the contents of the shift register, operating as code generator, at the start of code generation), on the other hand, is different for each individual pseudo noise sequence.
These first values of the sequence and hence the initialization state of the registers in the code generator may be unknown for various reasons. An unknown initialization state arises when the coding is intended to be started at a different time than the signal transmission itself. This situation occurs in the “compressed mode” in UMTS; further information relating to this mode can be found in “3GPP: Physical channels and mapping of transport channels onto physical channels (FDD)”, 3rd Generation Partnership Project TS 25.211, Release 1999.
The start of the sequence and hence the initialization state of the registers is also unknown when the code number does not directly define the register contents in the initialization state but, instead of this, defines a shift through a certain number of bits in the pseudo noise sequence used. By way of example, in UMTS the code for the number N is defined, in accordance with the 3GPP standard, as an N-bit shift in a firmly prescribed pseudo noise sequence. Further information relating to the relationship between the code number and the associated pseudo noise sequence can be found in “3GPP: Spreading and modulation (FDD)”, 3rd Generation Partnership Project TS 25.213, V4.2.0 (2001-12), specifically in section 5.2, in particular.
To be able to start the code generator, it is thus necessary in both cases to calculate the initialization state of the shift register first. When the code generator's shift register has been initialized with the initial values of the sequence being sought, the other sequence values can be produced without difficulty by means of simple register operations in the subsequent normal mode.
The first way of calculating the initialization state of the shift register is to start the sequence at the original start time and then to iterate it N times. In this way, the desired sequence shifted through N bits can be obtained. Only then is the output from the shift register used as code.
This solution is practiced in previous systems from the prior art, i.e. before outputting the desired pseudo noise sequence the register content of the shift register structure is iterated N times, and the process of outputting the actual pseudo noise sequence shifted through N bits is not started until after these prior iterations, which set the initialization state, have been carried out. One disadvantage of this procedure is that the number of operations required is proportional to the magnitude of the desired shift N. This variability makes it more difficult to control the overall time sequence. A further disadvantage is that the computational complexity and amount of time required become very large when the desired shift N has large values. During the mobile station's reception mode in UMTS systems, offsets in the range between N=0 and N=262 142 arise. Since the generation of the desired pseudo noise sequence has to wait until the desired offset is reached, this means an unacceptable delay in transmission and reception.
One alternative option is to store, for each desired shift N, the associated contents of the shift register in the initialization state in a table (ROM: Read Only Memory). This sets the shift register's lead time virtually to zero. The disadvantage is that a large memory area needs to be used.